#!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""
演示如何调用发送验证码邮件的Celery任务
"""

from tasks.tasks import send_verification_email


def main():
    """
    主函数，演示如何调用发送验证码邮件的Celery任务
    """
    print("开始发送验证码邮件...")

    # 设置收件人邮箱
    recipient_email = "1754965038@qq.com"  # 请替换为实际的收件人邮箱

    # 调用异步任务发送验证码邮件
    result = send_verification_email.delay(
        email_to=recipient_email,
        subject="您的登录验证码",
        length=6  # 验证码长度，默认为6位
    )

    print(f"任务已提交，任务ID: {result.id}")
    print("验证码邮件正在异步发送中...")
    print("注意: 请确保已经启动了Celery Worker，否则任务将不会被执行")
    print("可以使用以下命令启动Celery Worker:")
    print("    python run_celery_worker.py")

    # 等待任务完成并获取结果
    print("等待任务完成...")
    task_result = result.get(timeout=60)  # 等待最多60秒
    print(f"任务结果: {task_result}")
    
    if task_result.get('success', False):
        print(f"验证码 {task_result['verification_code']} 已成功发送到 {task_result['email']}")
        if 'warning' in task_result:
            print(f"警告: {task_result['warning']}")
    else:
        print(f"发送失败: {task_result.get('error', '未知错误')}")


if __name__ == "__main__":
    main()
